void main() {
    // 创建教师
    Teacher teacher1 = new Teacher("T001", "张教授");
    Teacher teacher2 = new Teacher("T002", "李老师");

    // 创建课程
    Course course1 = new Course("C001", "数据结构", "教学楼A101", "周一 10:00-12:00");
    Course course2 = new Course("C002", "计算机网络", "实验楼B202", "周三 14:00-16:00");
    Course course3 = new Course("C003", "人工智能", "科技楼C303", "周五 08:00-10:00");

    // 教师开课
    IO.println("=== 教师开课 ===");
    teacher1.offerCourse(course1);
    teacher1.offerCourse(course3);
    teacher2.offerCourse(course2);

    // 创建学生
    Student student1 = new Student("S001", "小明");
    Student student2 = new Student("S002", "小红");

    // 学生选课
    IO.println("\n=== 学生选课 ===");
    student1.selectCourse(course1);
    student1.selectCourse(course2);
    student2.selectCourse(course2);
    student2.selectCourse(course3);

    // 打印个人清单（新增功能）
    IO.println("\n=== 打印个人信息清单 ===");
    teacher1.printInfo();   // 打印教师1信息及授课课程
    student1.printInfo();   // 打印学生1信息及课表
    teacher2.printInfo();   // 打印教师2信息及授课课程
    student2.printInfo();   // 打印学生2信息及课表

    // 学生退课
    IO.println("\n=== 学生退课 ===");
    student1.dropCourse(course2);

    // 打印退课后的课表
    student1.printSchedule();
}